﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;

namespace Consultorio_Medico
{
    public partial class ModificarPermiso : Form
    {
        public ModificarPermiso()
        {
            InitializeComponent();
        }

        private void cmbBusqueda_SelectedValueChanged(object sender, EventArgs e)
        {
            MySqlConnection conexion = null;
            MySqlDataReader lector = null;
            try
            {
                String cadenaConexion = "Server=Localhost;Database=consultorio;Uid=root;Pwd=123;";
                conexion = new MySqlConnection(cadenaConexion);
                MySqlCommand consulta = conexion.CreateCommand();
                consulta.CommandText = "SELECT * FROM permisos WHERE id = @id";
                consulta.Parameters.AddWithValue("@id", cmbBusqueda.Text);
                conexion.Open();
                lector = consulta.ExecuteReader();
                while (lector.Read())
                {
                    txtFecha.Text = lector["fecha_alta"].ToString().Substring(0, 10);
                    rtbDesc.Text = lector["desc_permiso"].ToString();
                    cmbItem.Text = lector["item_menu"].ToString();
                    cmbTipo.Text = lector["tipo_permiso"].ToString();
                    if (lector["activo"].ToString().Equals("True"))
                    {
                        cmbActivo.Text = "SI";
                    }
                    else
                    {
                        cmbActivo.Text = "NO";
                    }
                }
                lector.Close();
                lector.Dispose();
                conexion.Close();
                conexion.Dispose();
            }
            catch (Exception)
            {
                conexion.Close();
                conexion.Dispose();
            }

        }

        private void ModificarUsuario_Load(object sender, EventArgs e)
        {
            String[] estados = { "SI", "NO" };
            cmbActivo.Items.AddRange(estados);
            String[] tipos = { "Administrador", "Secretaria", "Médico" };
            cmbTipo.Items.AddRange(tipos);
            String[] item = { "Administración", "Pacientes", "Enfermedades", "Historías Clínicas" };
            cmbItem.Items.AddRange(tipos);
            MySqlConnection conexion = null;
            MySqlDataReader lector = null;
            try
            {
                String cadenaConexion = "Server=Localhost;Database=consultorio;Uid=root;Pwd=123;";
                conexion = new MySqlConnection(cadenaConexion);
                MySqlCommand consulta = conexion.CreateCommand();
                consulta.CommandText = "SELECT id FROM permisos";
                conexion.Open();
                lector = consulta.ExecuteReader();
                while (lector.Read())
                {
                    cmbBusqueda.Items.Add(lector["id"].ToString());
                }
                lector.Close();
                lector.Dispose();
                conexion.Close();
                conexion.Dispose();
            }
            catch (Exception)
            {
                conexion.Close();
                conexion.Dispose();
            }
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            if (modificar())
            {
                MessageBox.Show("Permiso Modificado!!", "Exito", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                this.Close();
                this.Dispose();
            }
            else
            {
                MessageBox.Show("Permiso no Modificado!!", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        private Boolean modificar()
        {
            Boolean correcto = false;
            MySqlConnection conexion = null;
            try
            {
                String[] fechaActual = txtFecha.Text.Split('/');
                String fecha = fechaActual[2] + "/" + fechaActual[1] + "/" + fechaActual[0];
                String cadenaConexion = "Server=Localhost;Database=consultorio;Uid=root;Pwd=123;";
                conexion = new MySqlConnection(cadenaConexion);
                MySqlCommand modificar = conexion.CreateCommand();
                modificar.CommandText = "UPDATE permisos SET desc_permiso = @desc_permiso, item_menu = @item_menu, tipo_permiso = @tipo_permiso, fecha_alta = @fecha_alta, activo = @activo WHERE id = @id";
                conexion.Open();
                modificar.Parameters.AddWithValue("@desc_permiso", rtbDesc.Text);
                modificar.Parameters.AddWithValue("@item_menu", cmbItem.Text);
                modificar.Parameters.AddWithValue("@tipo_permiso", cmbTipo.Text);
                modificar.Parameters.AddWithValue("@fecha_alta", fecha);
                if (cmbActivo.Text.Equals("SI"))
                {
                    modificar.Parameters.AddWithValue("@activo", 1);
                }
                else
                {
                    modificar.Parameters.AddWithValue("@activo", 0);
                }
                modificar.Parameters.AddWithValue("@id", cmbBusqueda.Text);
                modificar.ExecuteNonQuery();
                conexion.Close();
                conexion.Dispose();
                correcto = true;
            }
            catch (Exception)
            {
                correcto = false;
                conexion.Close();
                conexion.Dispose();
            }
            return correcto;
        }

        private void monthCalendar1_DateSelected(object sender, DateRangeEventArgs e)
        {
            this.txtFecha.Text = monthCalendar1.SelectionStart.ToShortDateString();

        }
    }
}
